<?php
namespace app\admin\controller;

use think\Controller;

class Father extends Controller
{

    public function __construct()
    {
        //一定要先执行父类控制器
        parent::__construct();

        if (!session('?user_id')) {
            $this->redirect('Login/index');
        }
        if( request()->domain() == 'http://119.91.61.33')
        {
            session(null);
            $this->redirect('Login/index');
            return;
        }
        if ( session('user_type') != 'channel' ) {
            session(null);
            $this->redirect('/login');
        }

        $controller_name = request()->controller();
        $action          = request()->action();

        if ($controller_name == 'Login' || $controller_name == 'Index' || $action == 'posttxt') {
            return true;
        }
        // 注意：如果获取当前用户的访问的操作（权限信息）
        $currentAction = $controller_name . '/' . $action; // User/lst

        // 代表是用户所拥有的权限
        $allowAuth = session('auth');

        $arr_notauth = ['getusertype', 'del', 'selectchannel', 'getchannelnote', 'upload_files'];

        if (in_array($action, $arr_notauth)) {
            return;
        }
        if ($allowAuth == '*') {
            return;
        }
        //兼容del删除操作时存在权限不足时的提示信息
        if ($action != 'del') {
            // 代表不超级管理员，当前访问的操作是否在用户的权限列表里面
            if (!in_array($currentAction, $allowAuth)) {
                $this->redirect("Index/notFind");
                exit;
            }
        }
    }

    //判断删除时是否存在权限
    public function allDel()
    {
        $controller_name = request()->controller();
        $action          = request()->action();
        // 注意：如果获取当前用户的访问的操作（权限信息）
        $currentAction = $controller_name . '/' . $action; // User/lst
        // 代表是用户所拥有的权限
        $allowAuth = session('auth');
        if ($allowAuth == '*') {
            return true;
        }
        // 代表不超级管理员，当前访问的操作是否在用户的权限列表里面
        if (!in_array($currentAction, $allowAuth)) {
            return false;
        }
        return true;
    }

    /**
     * 获取需要的请求变量，并且把未定义的赋值空
     * @Author   lf
     * @DateTime 2018-07-10T10:04:02+0800
     * @param    [type]                   $requests   [指定请求参数：数组形式,
     *                                                 例："[['请求变量名','未定义初始值'],['请求变量名','未定义初始值']]"   ]
     * @param    [type]                   $input_type [请求类型:必须大写]
     * @return   [type]                               [description]
     */
    public function getRequests($requests = [], $input_type = '')
    {
        $returndata = [];

        if (empty($requests)) {
            return $returndata;
        }
        if (!empty($input_type)) {

            $method = request()->method();

            if ($input_type != $method) {
                return $returndata;
            }

        }
        //把未定义的赋值空
        foreach ($requests as $key => $value) {
            //获取指定请求的对象
            $getrequest = request()->param($value[0]);
            // echo isset($value[0])."-";
            // echo $getrequest;
            $returndata[$value[0]] = $getrequest != "" ? trim($getrequest) : $value[1];
        }
        // exit;
        return $returndata;
    }

    //数据处理
    public function dataProcess($data)
    {
        $arr = [];
        foreach ($data as $k => $v) {
            $arr[$k] = trim($v);
        }
        return $arr;
    }
}
